Scalar এবং Array Subqueries এর ব্যবহার

Big Data and Analytics - অ্যাপাচি ইমপালা (Apache Impala) - Impala এর জন্য Complex Queries এবং Subqueries
175

Impala একটি SQL-ভিত্তিক ডেটাবেস ইঞ্জিন, যা হাডুপ (Hadoop) ক্লাস্টারের ওপর দ্রুত ডেটা বিশ্লেষণ করতে সহায়ক। Impala-তে subqueries ব্যবহারের মাধ্যমে, একটি কোয়েরির মধ্যে আরেকটি কোয়েরি চালানো যায়, যা ডেটাকে আরও নির্দিষ্টভাবে ফিল্টার বা প্রক্রিয়া করতে সহায়তা করে। Impala-তে দুটি প্রধান ধরনের সাবকোয়েরি ব্যবহৃত হয়: Scalar Subqueries এবং Array Subqueries। এই দুটি সাবকোয়েরি ব্যবহার করে ডেটাকে আরও উন্নতভাবে বিশ্লেষণ এবং প্রক্রিয়া করা সম্ভব।


Scalar Subqueries

Scalar Subqueries সাধারণত একটি একক মান (single value) রিটার্ন করে। এই ধরনের সাবকোয়েরি একটি WHERE, HAVING, SELECT, বা INSERT স্টেটমেন্টে ব্যবহার করা যেতে পারে। Scalar Subqueries সাধারণত সেগুলির মধ্যে ব্যবহৃত হয় যেখানে একক মানের প্রয়োজন হয়, যেমন একটি নির্দিষ্ট কলামের মান খোঁজা।

Scalar Subqueries এর ব্যবহারের ধরন

  1. WHERE ক্লজে Scalar Subquery: Scalar Subquery সাধারণত WHERE ক্লজে ব্যবহার করা হয় যেখানে একটি নির্দিষ্ট শর্তের ভিত্তিতে ডেটা ফিল্টার করা হয়। এই ধরনের সাবকোয়েরি একটি একক মান ফিরিয়ে আনে।
SELECT column1, column2
FROM table_name
WHERE column1 = (SELECT MAX(column1) FROM table_name);

এখানে, Scalar Subquery MAX(column1) এর মান বের করে এবং মূল কোয়েরির মধ্যে এই মানটি ব্যবহার করে column1 এর সাথে তুলনা করা হয়। এটি ডেটার সর্বোচ্চ মানের সারির ডেটা রিটার্ন করবে।

  1. SELECT ক্লজে Scalar Subquery: Scalar Subquery একক মানের ফলাফল ফিরিয়ে আনে, যা মূল কোয়েরির একটি কলামের অংশ হিসেবে প্রদর্শিত হতে পারে।
SELECT column1, (SELECT AVG(column2) FROM table_name) AS avg_column2
FROM table_name;

এখানে, Scalar Subquery AVG(column2) মান বের করে এবং এটি মূল কোয়েরির ফলাফলের মধ্যে avg_column2 নামে একটি নতুন কলাম হিসেবে যুক্ত হয়।

Scalar Subquery এর সীমাবদ্ধতা

  • Scalar Subquery কেবলমাত্র একটি একক মান ফিরিয়ে আনে। যদি এটি একাধিক মান ফেরত দেয়, তবে তা ত্রুটি সৃষ্টি করবে।
  • Scalar Subquery সাধারণত WHERE বা SELECT এর মধ্যে ব্যবহার করা হয়, যেহেতু এটি একক মান রিটার্ন করে।

Array Subqueries

Array Subqueries একাধিক মান রিটার্ন করে এবং এগুলিকে একটি অ্যারে হিসেবে ব্যবহার করা যায়। এই ধরনের সাবকোয়েরি ব্যবহার করা হয় যখন কোনো ডেটা সেটের মধ্যে একাধিক মানের ভিত্তিতে ফলাফল বের করা প্রয়োজন হয়।

Array Subqueries এর ব্যবহারের ধরন

  1. IN ক্লজে Array Subquery: Array Subqueries সাধারণত IN ক্লজে ব্যবহৃত হয়, যেখানে ডেটা সেটের মধ্যে একাধিক মান চেক করা হয়। এটি একাধিক মানের ভিত্তিতে শর্ত প্রযোজ্য করতে সাহায্য করে।
SELECT column1, column2
FROM table_name
WHERE column1 IN (SELECT column1 FROM another_table WHERE condition);

এখানে, Array Subquery একটি ডেটা সেট ফিরিয়ে আনে যা column1 এর মধ্যে থাকা মানগুলো সমর্থন করে এবং মূল কোয়েরি তাদের বিরুদ্ধে শর্ত প্রযোজ্য করে।

  1. EXISTS ক্লজে Array Subquery: EXISTS ক্লজে Array Subquery ব্যবহার করা হয় যখন আমরা চেক করতে চাই, যদি কোনো রেকর্ড অন্য টেবিলের মধ্যে থাকে কিনা।
SELECT column1, column2
FROM table_name t
WHERE EXISTS (SELECT 1 FROM another_table a WHERE t.column1 = a.column1);

এখানে, Array Subquery ব্যবহার করে EXISTS ক্লজের মধ্যে মূল কোয়েরি নির্ধারণ করছে যে column1 এর মান অন্য টেবিলেও বিদ্যমান কিনা।

Array Subquery এর সুবিধা

  • এটি একাধিক মান রিটার্ন করে, যেহেতু ডেটার ভলিউম বেশি হলে এটি কার্যকরী হতে পারে।
  • এটি বৃহত্তর ডেটা সেটের উপর আরও জটিল শর্ত প্রয়োগে সহায়ক হয়।

Scalar এবং Array Subqueries এর তুলনা

বৈশিষ্ট্যScalar SubqueryArray Subquery
ফলাফলএকক মান (single value)একাধিক মান (multiple values)
ব্যবহারWHERE, SELECT, HAVINGIN, EXISTS, ANY, ALL
প্রকারএকক মান রিটার্ন করেএকটি ডেটাসেট বা অ্যারে রিটার্ন করে
সীমাবদ্ধতাএকাধিক মান ফিরিয়ে দিতে পারে নাএকাধিক মানের প্রক্রিয়া পরিচালনা করতে পারে

Scalar এবং Array Subqueries এর উদাহরণ

  1. Scalar Subquery Example:
SELECT name
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees);

এটি employees টেবিলের সর্বোচ্চ বেতন প্রাপ্ত কর্মচারীদের নাম ফিরিয়ে দেবে।

  1. Array Subquery Example:
SELECT name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE location = 'New York');

এটি departments টেবিলের location এর ভিত্তিতে New York অবস্থানে থাকা সমস্ত কর্মচারীদের নাম ফিরিয়ে দেবে।


সারাংশ

Scalar এবং Array Subqueries Impala SQL-এ শক্তিশালী টুল যা ডেটার উপর জটিল শর্ত প্রয়োগ করতে সাহায্য করে। Scalar Subqueries একক মান রিটার্ন করে এবং তা বিভিন্ন SQL ক্লজে ব্যবহৃত হয়, যেমন WHERE বা SELECT। অন্যদিকে, Array Subqueries একাধিক মান রিটার্ন করে, যা IN বা EXISTS এর মতো অপারেটরে ব্যবহৃত হতে পারে। এই দুটি সাবকোয়েরি ব্যবহার করে Impala তে ডেটাকে আরও গভীরভাবে বিশ্লেষণ করা সম্ভব, এবং এটি বড় ডেটাসেটের উপর কাজ করতে খুবই কার্যকরী।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...